/*******************************************************************************
 * 版权：北京润尼尔网络科技有限公司，保留所有版权<br>
 * 版本：v1.0.0<br>
 * 文件：CviInterMsgHandler.js<br>
 * 日期：2016年11月25日<br>
 * 作者: 王中山<br>
 * 功能：<br>
 * 
 * 修改记录：<br>
 * 日期 描述 更新功能<br>
 ******************************************************************************/


window.makeNamespace(window,"Rainier.UI.V2.WebSocket");

/**
 * 类型名称：Rainier.UI.V2.WebSocket.CviInterMsgHandler<br>
 * 类型功能：websocket<br>
 * 接口函数：<br>
 * 成员变量：<br>
 */
Rainier.UI.V2.WebSocket.CviInterMsgHandler = Rainier.UI.V2.WebSocket.RecvMessageHandler.extend({
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.CviInterMsgHandler.init<br>
	 * 函数功能：构造函数<br>
	 * 异常信息：无<br>
	 */
	init : function(){
		this._super();
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.CviInterMsgHandler.handleMsg<br>
	 * 函数功能：发送消息<br>
	 * 参数输入：xmlDoc		XMLDocument<br>
	 * 参数输出：无<br>
	 * 函数返回：无<br>
	 * 异常信息：无<br>
	 */
	handleMsg : function(xmlDoc){
		//TODO:处理cvi-inter-report类型消息
		if(xmlDoc){
			var cviInstance = $(xmlDoc).find('cvi-instance').text();
			var contentType	= $(xmlDoc).find('content-type').text();
			var modelInfo	= cviInstance.split('_');
			var cviLabel	= modelInfo[0];
			var editorId    = modelInfo[1]; 
			
			var content		= $(xmlDoc).find('content').text();
			if(contentType === "text"){
				console.log('receive cvi-inter-report msg content-type:'+contentType+'  content:'+content);				
			}else if(contentType === "base64"){
				var content		   	 = window.atob(content);
				var result			 = this.transferString(content);
				var virtualModel	 = this.getCurrentVirtualModel(cviLabel);
				if(virtualModel){					
					virtualModel.handleCommand(result);
				}
			}			
		}
	},
	
	/**
	 * 函数名称：Rainier.UI.V2.WebSocket.CviInterMsgHandler.getCurrentVirtualModel<br>
	 * 函数功能：获取返回数据的虚拟仪器对象<br>
	 * 参数输入：label:需要获取的虚拟仪器的label值<br>
	 * 参数输出：无<br>
	 * 函数返回：获取到的虚拟仪器对象<br>
	 * 异常信息：无<br>
	 */
	getCurrentVirtualModel : function(label){
		var context        = window.app.getContext();
		var currentEditor  = context.getActiveEditor();
		if(!currentEditor.getRunStatus()){
			currentEditor.getVirtualModel();
		}
		var virtualModel  	 = currentEditor.virtualModelList[label];
		//var currentContext 	 = currentEditor.context;
		//var virtualModel     = currentContext.findVirtualModelByLabel(label);
		return virtualModel;
	},
	
    /**
	 * 函数名称：Rainier.UI.V2.WebSocket.CviInterMsgHandler.transferString<br>
	 * 函数功能：将字符串中的换行符替换为 空格<br>
	 * 参数输入：content：需要替换的字符串<br>
	 * 参数输出：无<br>
	 * 函数返回：reslut：替换后的内容<br>
	 * 异常信息：无<br>
	 */
    transferString : function(content)  
    {  
        var string = content;  
        try{  
            string=string.replace(/\r\n/g,"");  
            string=string.replace(/\n/g,"");  
        }catch(e) {  
            alert(e.message);  
        }  
        return string;  
    }  
});